/**
 * 
 */
package grafi;

import java.util.*;

/**
 * @author sflesca
 *
 */
public class SchedulerMannara {

	Grafo g;
	int[] activityTimes;
	
	/**
	 * 
	 */
	public SchedulerMannara(Grafo g, int[] activityTimes) {
		this.g=g;
		this.activityTimes = activityTimes;
	}
	
	int[] schedule(){
		int[] startTimes = new int[g.getN()];
		Arrays.fill(startTimes, 0); //inizializza tutto a zero
		int[] gradi = calcolaGradiEntrata();
		boolean[] eseguiti = new boolean[g.getN()];
		Arrays.fill(eseguiti, false);
		Queue<Integer> darimuovere = new LinkedList<Integer>();
		for(int i= 0; i<gradi.length; i++){
			if(gradi[i]==0)
				darimuovere.offer(i);}
		
		while(!darimuovere.isEmpty()){
			int a = darimuovere.poll();
			eseguiti[a]=true;
			
			
		}
		return startTimes;
	}
	
	private int[] calcolaGradiEntrata() {
		// TODO Auto-generated method stub
		int[] grado = new int[g.getN()];
		Arrays.fill(grado, 0);
		Iterator<Arco> a=g.archi();
		for(int i= 0; i<grado.length; i++){
			while(a.hasNext()){
		if(a.next().fin==i)
			grado[i]++;
		}
		}
	return grado;
}	
	

	public static void main(String[] args){
		
	}

}
